/**
 * 
 */
package co.com.fenoco.encuentas.persistencia;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Collection;

import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.Transient;

/**
 * @author Camilo Forero
 * 
 */
@Entity
@Table(name = "ENC_SOCIALES")
@NamedQueries({
		@NamedQuery(name = "findEncuestasSociales", query = "SELECT e FROM EncabezadoSociales e WHERE e.encuestador=:encuestador"),
		@NamedQuery(name = "loadEncuestaSociales", query = "SELECT e FROM EncabezadoSociales e  WHERE e.id.id=:id") })
public class EncabezadoSociales implements Serializable {
	/**
	 * 
	 */
	private static final long serialVersionUID = 8108094940754748484L;
	@EmbeddedId
	private EncabezadoSocialesId id;
	private Long encuestador;
	@Column(name = "USUARIO_MOD", nullable = true)
	private Long usuarioMod;
	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "FECHA_DILIGENCIA")
	private Calendar fechaDiligencia;
	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "FECHA_MODIFICA", nullable = true)
	private Calendar fechaModificacion;
	private String relacion;
	@Column(name = "OBSERVA1")
	private Long observacion1;
	@Column(name = "OBSERVA2")
	private Long observacion2;
	@Column(name = "OBSERVA1RAZON")
	private String observacion1Razon;
	@Transient
	private Collection<DetalleSociales> detalles = new ArrayList<DetalleSociales>();

	/**
	 * @return the encuestador
	 */
	public Long getEncuestador() {
		return encuestador;
	}

	/**
	 * @param encuestador
	 *            the encuestador to set
	 */
	public void setEncuestador(Long encuestador) {
		this.encuestador = encuestador;
	}

	/**
	 * @return the usuarioMod
	 */
	public Long getUsuarioMod() {
		return usuarioMod;
	}

	/**
	 * @param usuarioMod
	 *            the usuarioMod to set
	 */
	public void setUsuarioMod(Long usuarioMod) {
		this.usuarioMod = usuarioMod;
	}

	/**
	 * @return the fechaDiligencia
	 */
	public Calendar getFechaDiligencia() {
		return fechaDiligencia;
	}

	/**
	 * @param fechaDiligencia
	 *            the fechaDiligencia to set
	 */
	public void setFechaDiligencia(Calendar fechaDiligencia) {
		this.fechaDiligencia = fechaDiligencia;
	}

	/**
	 * @return the fechaModificacion
	 */
	public Calendar getFechaModificacion() {
		return fechaModificacion;
	}

	/**
	 * @param fechaModificacion
	 *            the fechaModificacion to set
	 */
	public void setFechaModificacion(Calendar fechaModificacion) {
		this.fechaModificacion = fechaModificacion;
	}

	/**
	 * @return the relacion
	 */
	public String getRelacion() {
		return relacion;
	}

	/**
	 * @param relacion
	 *            the relacion to set
	 */
	public void setRelacion(String relacion) {
		this.relacion = relacion;
	}

	/**
	 * @return the observacion1
	 */
	public Long getObservacion1() {
		return observacion1;
	}

	/**
	 * @param observacion1
	 *            the observacion1 to set
	 */
	public void setObservacion1(Long observacion1) {
		this.observacion1 = observacion1;
	}

	/**
	 * @return the observacion2
	 */
	public Long getObservacion2() {
		return observacion2;
	}

	/**
	 * @param observacion2
	 *            the observacion2 to set
	 */
	public void setObservacion2(Long observacion2) {
		this.observacion2 = observacion2;
	}

	/**
	 * @return the observacion1Razon
	 */
	public String getObservacion1Razon() {
		return observacion1Razon;
	}

	/**
	 * @param observacion1Razon
	 *            the observacion1Razon to set
	 */
	public void setObservacion1Razon(String observacion1Razon) {
		this.observacion1Razon = observacion1Razon;
	}

	/**
	 * @return the detalles
	 */
	public Collection<DetalleSociales> getDetalles() {
		return detalles;
	}

	/**
	 * @param detalles
	 *            the detalles to set
	 */
	public void setDetalles(Collection<DetalleSociales> detalles) {
		this.detalles = detalles;
	}

	public EncabezadoSocialesId getId() {
		return id;
	}

	public void setId(EncabezadoSocialesId id) {
		this.id = id;
	}

}
